https://www.yes24.com/Product/Goods/111408257
이름을 음차하기도 어려운 알 스웨이가트의 책이다. 그러므로 이하 알이라고 한다.
나는 이미 알의 책을 한 권 번역한 적 있다.
"암호 해킹으로 배우는 파이썬의 기초" 는 간단한 암호학에 대한 알의 책이다.
이제 두 권 읽은 셈이지만 알은 훌륭한 기술서 저자다. 이해가 쏙쏙, 궁금했던 내용이 좔좔좔, 가려운 부분을 벅벅, 알아야 할 이슈를 꼼꼼히 체계적으로 다룬다.
또한 이 책의 번역가는 그 유명한 박재호님이다. 아는 사람은 다 아는 바로 그 분.
파이썬은 쉽다. 쉽기 때문에 바로 코딩을 할 수 있다. 이미 다른 언어의 숙련자라면 하루면 뭔가를 만들 수 있다.
그러다보니 자기만의 파이썬의 코딩 스타일이 생기기도 좋다. 나쁘다는 것은 아니다. 나는 이것을 파이썬의 특징이라고 생각한다.
예를들어 데코레이터와 제네레이터와 이터레이터와 람다와 클래스와 다중상속과 잘 알려지지 않은 내장기능들을 자유자재로 구사하는 사람들이 있다.
한 편으로 덧셈뺄셈 제어문 순환문 등등만으로도 모든 것을 해결하는 사람도 있다. 이것이 파이썬의 특징이다.
두 방향으로 모두 고수가 존재한다. 다만, 팀플을 하는데 있어 문제 해결 역량과 지식의 평균이 다른 것은 가끔 문제가 된다.
장고 프로젝트를 하는 사람이 장고를 모르고 기본 구문만으로 모든 것을 해결 할 순 없을 뿐더러, 해결했다 하더라도 팀 차원의 코드 품질은 좋다고 할 수 없다.
이 책은 바로 이 지점을 공략한다. 지금까지 자기만의 파이썬 스타일로 모든 문제를 잘 해결하고 있던 개발자라 하더라도, 표준적으로 높은 품질의 파이썬 코드를 작성하는 것은 미흡할 수 있다.
그런 개발자들을 위한 모든 지식이 담겨있다. 내가 파이썬 전문가라고 할 수는 없지만 "모든 지식"이라는 수사를 쓰는데 큰 용기가 필요하지 않은 정도다.
빠진 부분이라면 파이썬 버전별 차이, pypy나 싸이썬, 병렬성 동시성 비동기 문제 정도만 있는 것 같다.
기타 기능적 측면의 지식은 이 책의 범주가 아니다. 예를 들어 머신러닝이라든가 그래핑이라든가 판다스를 잘 써보자 하는 내용은 이 책의 범주가 아니다.
파이썬 코드를 다루는 데 그라운드 룰, 상식, 표준, 클린 코드로 향한 지양/지향 해야 하는 습관, 관습, 패턴들을 다루고 있다.
우리가 흔히 보던 클린 코드의 이념(?)들을 기본으로, 파이썬만에 부합하는 내용이 들어있다.
예컨데 중복제거, 네이밍 등은 프로그래밍 공통의 철학이라면,
파이썬만의 관습은 어떻다, 리턴값의 타입을 일관되게 유지할 때 파이썬에서는 어떻게 할 것인가, 리스트 컴프리헨션의 장단점은 무엇인가 등 파이썬만의 클린 코드로서의 "선=zen"의 정수를 담고 있다.
특히, 어딘가 잘 정리되어 있을 체계적 지식을 단순히 재나열 한 것이 아닌, 오랜기간 파이썬 코딩을 하고 좋고 나쁜 코드를 수없이 읽었던 알의 관록을 엿볼 수 있다.
"월급 받는데 문제없이 열심히, 잘, 성공적으로 파이썬 코딩을 하고 있지만 이러고 살아도 되는가 항상 염려는 있었습니다"
이것은 나의 고백이며, 비슷한 걱정이 있는 개발자라면 필독을 권한다.
어떤 개발자들은 클린 코드의 철학을 교조적으로 해석하는 경향도 있다. 파이써닉은 달성이 아니라 추구라고 생각한다. 알의 설명은 충분히 유연하다. 정의적이지 않다. 그러나 한 편으로는 그라운드 롤에 대한 강조도 잊지 않는다.
파이써닉은 내게 항상 딜레마적이다. 파이써닉을 고도로 강조하면 그것은 파이써닉인가 아닌가? 고민 자체가 융통성을 내세운 비파이써닉으로의 일탈인가? 일탈을 말하는 것은 교조적이고 정의적인가? 나는 그저 게을러서 핑계를 대는 것인가?
정답은?
비밀.
끗.